“Everybody in this country should learn how to program a computer . . . because it teaches you how to think.”—Steve Jobs.
Computer programming is becoming a way of thinking and doing for the broader society, beyond the narrow confines of computer programming professionals, particularly as the Internet continues to be a transformative force in driving changes in almost every aspects of modern life. People are starting to learn computer programming at an ever-younger age, a trend encouraged and reinforced by programming tools and platforms specifically developed for younger children or beginners.
Currently there are a number of programming tools and platforms that enable the creation of interactive stories, games, and animations, and the sharing of such creations in the online community. Their stated aim is to help young people learn to think creatively, reason systematically, and work collaboratively. Many games running on smart phones or tablet computers have also been developed that aim to further reduce the entry barrier for programming, and to teach the ways of logical thinking, to children as young as 4 years of age, often without much focus on writing programming code.
However, despite all these efforts, learning to program a game is still not intuitive and less fun than playing one, and it is desirable to develop ways that make programming fun and intuitive. Currently, most if not all of the programming tools and games are screen-based—they require users to interact with an electronic screen, whether it is on a laptop computer, a smart phone, or a tablet computer. An off-screen and physical building blocks-based system and method would be desirable, especially for young children whose parents desire to stimulate the children's interest in structured thinking and logical reasoning but at the same time wish to reduce the children's time spent with electronic screens.